home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / cctools / as / read.h < prev    next >
Text File  |  1993-09-09  |  3KB  |  93 lines

  1. /* read.h - of read.c
  2.    Copyright (C) 1986 Free Software Foundation, Inc.
  3.  
  4. This file is part of GAS, the GNU Assembler.
  5.  
  6. GAS is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GAS is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GAS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #import "expr.h"
  21.  
  22. #define PERMIT_WHITESPACE    /* Define to make whitespace be allowed in */
  23.                 /* many syntactically unnecessary places. */
  24.                 /* Normally undefined. For compatibility */
  25.                 /* with ancient GNU cc. */
  26. #undef PERMIT_WHITESPACE
  27.  
  28. #ifdef PERMIT_WHITESPACE
  29. #define SKIP_WHITESPACE() {if (* input_line_pointer == ' ') ++ input_line_pointer;}
  30. #else
  31. #define SKIP_WHITESPACE() ASSERT( * input_line_pointer != ' ' )
  32. #endif
  33.  
  34.  
  35. #define    LEX_NAME    (1)    /* may continue a name */              
  36. #define LEX_BEGIN_NAME    (2)    /* may begin a name */                  
  37.                                               
  38. #define is_name_beginner(c)     ( lex_type[(c) & 0xff] & LEX_BEGIN_NAME )
  39. #define is_part_of_name(c)      ( lex_type[(c) & 0xff] & LEX_NAME       )
  40.  
  41. /*
  42.  * A pseudo opcode table entry.
  43.  */
  44. typedef struct {
  45.     char *poc_name;    /* assembler mnemonic, lower case, no '.' */
  46.     void (*poc_handler)(int poc_val);    /* Do the work */
  47.     int  poc_val;    /* Value to pass to handler */
  48. } pseudo_typeS;
  49.  
  50. extern char *input_line_pointer; /* -> char we are parsing now. */
  51. extern char *buffer_limit;     /* -> 1 + last char in buffer. */
  52. extern const char lex_type[];
  53. extern unsigned long text_nsect;
  54.  
  55. extern void read_begin(
  56.     void);
  57. void read_a_source_file(
  58.     char *buffer);
  59. extern long get_absolute_expression(
  60.     void);
  61. extern void demand_empty_rest_of_line(
  62.     void);
  63. extern void ignore_rest_of_line(
  64.     void);
  65. extern void add_to_macro_definition(
  66.     char *char_pointer);
  67. extern segT get_known_segmented_expression(
  68.     expressionS *expP);
  69. extern void totally_ignore_line(
  70.     void);
  71.  
  72. /* globally know pseudo-op functions (used by some assemblers in MACHINE.c) */
  73. extern void stringer(
  74.     int append_zero);
  75. extern void s_space(
  76.     int value);
  77. extern void s_abs(
  78.     int value);
  79. extern void float_cons(
  80.     int float_type);
  81. extern void cons(
  82.     int nbytes);
  83. extern void s_globl(
  84.     int value);
  85. extern void s_line(
  86.     int value);
  87. extern void s_macro(
  88.     int value);
  89. extern void s_endmacro(
  90.     int value);
  91. extern void big_cons(
  92.     int nbytes);
  93.